package com.mybank.domain;

import java.sql.*;
import java.util.Properties;

public class CajaDeAhorro extends Cuenta {
	

	public CajaDeAhorro (double saldoInicial) {
		super(saldoInicial);
		
	}
	public CajaDeAhorro() 
	{
	}


	
	public void cargarCajaAhorro(String nroCajaAhorro)
	{
		String driverDb;
		String urlDb;
        String usuarioDb;
        String passwordDb;
        
        // leo las propiedades ingresadas en Controller
		Properties p = System.getProperties();		
		
		driverDb = p.getProperty("driverDb");
		urlDb = p.getProperty("urlDb");
		usuarioDb = p.getProperty("usuarioDb");
		passwordDb = p.getProperty("passwordDb");
		
		try 
		{
			Class.forName(driverDb);
		} 
		catch (ClassNotFoundException e) 
		{
			System.out.println(e.toString());
		}
		String sql = "SELECT * FROM CUENTAS WHERE NUMERO = '" + nroCajaAhorro + "'";

		try 
		{
			Connection con = DriverManager.getConnection(urlDb, usuarioDb,passwordDb);
			Statement s = con.createStatement();
			ResultSet rs = s.executeQuery(sql);

			while (rs.next()) 
			{
				this.setNumero(Integer.parseInt(rs.getString(1)));
				this.setSaldo(Double.parseDouble(rs.getString(4)));				
			}
			rs.close();
			s.close();
			con.close();
		}
		catch (SQLException e) 
		{
		} 
		catch (Exception e) 
		{
		}
	}
	
	 public boolean extraccion(double monto)
		{
		 	boolean isOk = false;
		 	String driverDb;
			String urlDb;
	        String usuarioDb;
	        String passwordDb;
	        
	        // leo las propiedades ingresadas en Controller
			Properties p = System.getProperties();		
			
			driverDb = p.getProperty("driverDb");
			urlDb = p.getProperty("urlDb");
			usuarioDb = p.getProperty("usuarioDb");
			passwordDb = p.getProperty("passwordDb");
		 	
		 	if (saldo >= monto) 
		 	{
		 		isOk = true;
				saldo = saldo - monto;		 	
				try 
				{
					Class.forName(driverDb);					
				} 
				catch (ClassNotFoundException e) 
				{
					System.out.println(e.toString());
				}
				
				String sql = "UPDATE CUENTAS " +
							" SET SALDO = '" + saldo + 
							"' WHERE NUMERO = '" + this.numero + "'";
	
				try 
				{					
					Connection con = DriverManager.getConnection(urlDb,usuarioDb, passwordDb);
					Statement s = con.createStatement();
					s.executeUpdate(sql);
					s.close();
					con.close();
					
				}
				catch (SQLException e) 
				{
				} 
				catch (Exception e) 
				{
				}
		 	}
		 	else
		 	{
		 		//mostrar mensaje saldo insuficiente.
		 		
		 	}
		 	return isOk;
		}

}
